package com.nexchanges.hailyo.GoogleMapSupport;
import android.content.Context;
import android.location.Address;
import android.location.Geocoder;
import android.os.AsyncTask;
import com.google.android.gms.maps.model.LatLng;
import java.io.IOException;
import java.util.List;
import java.util.Locale;
/**
* Created by Abhishek on 18/04/15.
*/
public class GeoFetcher extends AsyncTask<LatLng, Void, List<Address>> {
private boolean isExecuting = false;
private Context context;
private OnLocationAddressAvailableListener listener;
public GeoFetcher(Context context) {
this.context = context;
}
public void setListener(OnLocationAddressAvailableListener listener) {
this.listener = listener;
}
public boolean isExecuting() {
return isExecuting;
}
@Override
protected List<Address> doInBackground(LatLng... latLngs) {
LatLng latLng = latLngs[0];
isExecuting = true;
Geocoder geocoder = new Geocoder(context, Locale.ENGLISH);
try {
return geocoder.getFromLocation(latLng.latitude, latLng.longitude, 5);
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
@Override
protected void onPostExecute(List<Address> addresses) {
super.onPostExecute(addresses);
isExecuting = false;
if(listener!=null){
listener.onLocationAddressAvailable(addresses);
}
}
public static interface OnLocationAddressAvailableListener{
public void onLocationAddressAvailable(List<Address> addresses);
}
}